// SPDX-License-Identifier: GPL-2.0
/dts-v1/;

#include <dt-bindings/input/linux-event-codes.h>

#include "tegra186-p3310.dtsi"

/ {
	model = "NVIDIA Tegra186 P2771-0000 Development Board";
	compatible = "nvidia,p2771-0000", "nvidia,tegra186";

	i2c@3160000 {
		power-monitor@42 {
			compatible = "ti,ina3221";
			reg = <0x42>;
		};

		power-monitor@43 {
			compatible = "ti,ina3221";
			reg = <0x43>;
		};

		exp1: gpio@74 {
			compatible = "ti,tca9539";
			reg = <0x74>;

			interrupt-parent = <&gpio>;
			interrupts = <TEGRA_MAIN_GPIO(Y, 0) GPIO_ACTIVE_LOW>;

			#gpio-cells = <2>;
			gpio-controller;
		};

		exp2: gpio@77 {
			compatible = "ti,tca9539";
			reg = <0x77>;

			interrupt-parent = <&gpio>;
			interrupts = <TEGRA_MAIN_GPIO(Y, 6) GPIO_ACTIVE_LOW>;

			#gpio-cells = <2>;
			gpio-controller;
		};
	};

	/* SDMMC1 (SD/MMC) */
	sdhci@3400000 {
		status = "okay";

		vmmc-supply = <&vdd_sd>;
	};

	gpio-keys {
		compatible = "gpio-keys";

		power {
			label = "Power";
			gpios = <&gpio_aon TEGRA_AON_GPIO(FF, 0)
					   GPIO_ACTIVE_LOW>;
			linux,input-type = <EV_KEY>;
			linux,code = <KEY_POWER>;
			debounce-interval = <10>;
			wakeup-source;
		};

		volume-up {
			label = "Volume Up";
			gpios = <&gpio_aon TEGRA_AON_GPIO(FF, 1)
					   GPIO_ACTIVE_LOW>;
			linux,input-type = <EV_KEY>;
			linux,code = <KEY_VOLUMEUP>;
			debounce-interval = <10>;
		};

		volume-down {
			label = "Volume Down";
			gpios = <&gpio_aon TEGRA_AON_GPIO(FF, 2)
					   GPIO_ACTIVE_LOW>;
			linux,input-type = <EV_KEY>;
			linux,code = <KEY_VOLUMEDOWN>;
			debounce-interval = <10>;
		};
	};

	regulators {
		vdd_sd: regulator@100 {
			compatible = "regulator-fixed";
			reg = <100>;

			regulator-name = "SD_CARD_SW_PWR";
			regulator-min-microvolt = <3300000>;
			regulator-max-microvolt = <3300000>;

			gpio = <&gpio TEGRA_MAIN_GPIO(P, 6) GPIO_ACTIVE_HIGH>;
			enable-active-high;

			vin-supply = <&vdd_3v3_sys>;
		};
	};
};
